// vuex 的代码写在这
// 1、导入vue、vuex
import Vue from 'vue'
import Vuex from 'vuex'

// 2、注册 给组件挂载$store
Vue.use(Vuex)

// 3、创建store仓库
const store = new Vuex.Store({
  // 定义state，state是统一存放数据的地方（共享数据源）
  state: {
    count: 100
    // num: 20
  },
  // 定义mutation,唯一可以修改state的数据管家，本质是函数
  mutations: {
    addCount(state, num = 1) {
      state.count += num
    },
    subCount(state, num = 1) {
      state.count -= num
    },
    setCount(state, num) {
      state.count = num
    }
  },
  actions: {
    asyncAddCount(store, val = 1) {
      setTimeout(() => {
        store.commit('addCount', val)
      }, 1000)
    },
    asyncSubCount(store, val = 1) {
      setTimeout(() => {
        store.commit('subCount', val)
      }, 1000)
    }
  },
  getters: {}
})

// 4、导出store对象
// 导出一个就会默认导出export default，导出多个按需导出export
export default store
